[Amazon FSx for NetApp ONTAP] QoSでIOPSとスループットの上限を絞ってみた
このボリュームへの書き込みを制御したいな
こんにちは、のんピ(@non____97)です。
皆さんは特定ボリュームへの書き込みを制御したいなと思ったことはありますか? 私はあります。
以下記事で紹介したように、Amazon FSx for NetApp ONTAP(以降FSxN)では一つのファイルシステム上に複数のSVM、ボリュームを用意することが可能です。
適切にリソースを集約することで、コスト圧縮や管理コストを下げることが可能です。
ただし、そんな時に問題になるのがノイジーネイバーです。ノイジーネイバーとはリソースを共有している他のクライアントが原因により、他のクライアントの性能に悪影響を及ぼすことを指します。
例えば、1つのFSxNファイルシステム上に開発/検証/本番と複数のSVMが存在している場合、何もケアをしなければ開発環境上で高IOを出してしまうと、本番環境の性能にまでも影響を及ぼしてしまいます。
そんな時に役立つのはQoS(Quality of Service)です。
ONTAPでもQoSをかけることは可能です。FSxNのQoSはAWS Blogsでも紹介されています。
QoSをかける主なシチュエーションは以下が挙げられます。
- ネットワーク機器の限界以上のIO、スループットがかかっており、ネットワーク機器を通る他の機器に影響を与えている
- 他のSVM、ボリュームのIO、スループットが悪化している
- NASアクセスによるCPU負荷を下げ、階層化を優先させる
実際に試してみます。
いきなりまとめ
- QoSはIOPSとスループット、またはその両方を制限する
- QoSは3種類
- QoS Max : 上限を制限する
- QoS Min : 下限を制限する
- アダプティブQoS : ボリュームサイズもしくは使用量に合わせて自動的にQoSの値を調整する
- QoS Minは2024/6/10時点では使用不可
- QoSはボリュームだけでなく、SVM、qtreeにも設定可能
ONTAPにおけるQoSとは
概要
ONTAPにおけるQoSは以下NetApp公式ドキュメントにまとまっています。
ONTAPのQoSではIOPSとスループット、またはその両方を制限できます。クライアントのIPアドレスや、プロトコルで優先度を変更するといった機能はありません。
QoSはネットワーク層で制御し、QoSがかかるとレイテンシーが増大します。
QoSをかける範囲は以下のとおりです。
- SVM
- ボリューム
- qtree
- 後述するアダプティブQoSは不可
- ファイル
- FlexCacheボリュームでは不可
- LUN
大量のボリュームがある場合にSVM単位でかけられるのは運用が楽になりそうですね。また、qtreeやファイル、LUNとピンポイントで制限できるのも嬉しいです。
なお、SVMにQoSをかけて、さらにボリュームやqtreeに別のQoSをかけるといったことはできません。
下位のオブジェクトまたは子オブジェクトがポリシーグループに属している場合は、そのストレージオブジェクトをポリシーグループに割り当てることはできません。
QoSのかけ方は以下の3種類があります。
- QoS Max
- QoS Min
- アダプティブQoS
以降、それぞれについて紹介します。
QoS Max
QoSとしてイメージしやすいのがQoS Maxではないでしょうか。
QoS MaxはIOPSとスループットの上限を制限するものです。IOPSとスループットの両方を指定した場合、先に上限に達した方が適用されます。
また、一時的にバーストし、上限以上の性能を出すことができるようです。
ワークロードのスループットは、特にスループットが急激に変化した場合、指定された上限を 10% までは超過することができます。バースト時には、上限を 50% まで超過することができます。バーストは、トークンが 150% まで累積した場合に単一ノードで発生します
QoS Maxでは同じQoSポリシーグループ内のストレージオブジェクト内の性能の合算値を上限とするか選択することが可能です。複数ボリュームの合計スループットの上限を被せたい場合に便利です。
詳細な設定手順は以下NetApp公式ドキュメントにまとまっています。
QoS Min
QoS MinはIOPSとスループットの下限を設定するものです。
QoS Minを使用することで、割り当てられたストレージオブジェクトのIOPSとスループットを優先させることが可能です。これにより間接的に他のストレージオブジェクトのIOPSとスループットが調整されます。
一見便利そうですが、注意点としてFabricPoolでTiering Policyがnone
以外の場合では使用できないという点があります。
FabricPool and quality of service minimums (QoS Min) goals are mutually exclusive; QoS Min provides performance minimums, whereas FabricPool sends blocks to an object store and decreasing performance. QoS Min must be turned off on volumes in FabricPool local tiers. Alternatively, tiering must be turned off (-tiering-policy none) on volumes that require QoS Min
詳細な設定手順は以下NetApp公式ドキュメントに記載されています。
アダプティブQoS
アダプティブQoSはボリュームサイズもしくは使用量に合わせて自動的にQoSの値を調整する仕組みです。
事前にGBあたり or TBあたりのIOPSを指定することで、その比率を維持してくれます。
ボリュームの自動拡張を有効化しており、サイズに応じてIOPSを自動で調整したい場合は役立ちそうです。
ただし、FabricPoolでは使用できないようです。
Resource or feature | Throughput ceiling | Throughput floor | Throughput floor v2 | Adaptive QoS |
---|---|---|---|---|
ONTAP 9 version | All | 9.2 and later | 9.7 and later | 9.3 and later |
Platforms | All | AFF C190 * ONTAP Select premium with SSD * |
AFF C190 ONTAP Select premium with SSD |
All |
Protocols | All | All | All | All |
FabricPool | Yes | Yes, if the tiering policy is set to "none" and no blocks are in the cloud. | Yes, if the tiering policy is set to "none" and no blocks are in the cloud. | No |
SnapMirror Synchronous | Yes | No | No | Yes |
Guarantee throughput with QoS overview
詳細な設定手順は以下NetApp公式ドキュメントに記載されています。
やってみた
デフォルトのQoSポリシーグループの確認
実際に試してみます。
まず、デフォルトのQoSポリシーグループの確認をします。
::> set diag
Warning: These diagnostic commands are for use by NetApp personnel only.
Do you want to continue? {y|n}: y
::*> qos ?
adaptive-policy-group> The adaptive-policy-group directory
policy-group> The policy-group directory
settings> QoS settings
statistics> QoS statistics
workload> QoS workload settings
::*> qos policy-group ?
create Create a policy group
delete Delete an existing QoS Policy Group
modify Modify a policy group
rename Rename a policy group
show Display a list of policy groups
::*> qos policy-group show
Name Vserver Class Wklds Throughput Is Shared
---------------- ----------- ------------ ----- ------------ ---------
extreme-fixed FsxId02ac680b159bfea94
user-defined 0 0-50000IOPS,1.53GB/s
false
performance-fixed
FsxId02ac680b159bfea94
user-defined 0 0-30000IOPS,937.5MB/s
false
value-fixed FsxId02ac680b159bfea94
user-defined 0 0-15000IOPS,468.8MB/s
false
3 entries were displayed.
::*> qos policy-group show -instance
Policy Group Name: extreme-fixed
Vserver: FsxId02ac680b159bfea94
Uuid: b7189398-e572-48ab-8f69-82cd46580812
Policy Group Class: user-defined
Policy Group ID: 661
Maximum Throughput: 50000IOPS,1.53GB/s
Minimum Throughput: 0
Number of Workloads: 0
Throughput Policy: 0-50000IOPS,1.53GB/s
Is Shared: false
Is Policy Auto Generated: -
Policy Group Name: performance-fixed
Vserver: FsxId02ac680b159bfea94
Uuid: e7e784fd-ad09-41f3-9cc9-a75cb1fb35fa
Policy Group Class: user-defined
Policy Group ID: 5284
Maximum Throughput: 30000IOPS,937.5MB/s
Minimum Throughput: 0
Number of Workloads: 0
Throughput Policy: 0-30000IOPS,937.5MB/s
Is Shared: false
Is Policy Auto Generated: -
Policy Group Name: value-fixed
Vserver: FsxId02ac680b159bfea94
Uuid: 098587a4-24f3-480d-8577-258a4d324dec
Policy Group Class: user-defined
Policy Group ID: 1570
Maximum Throughput: 15000IOPS,468.8MB/s
Minimum Throughput: 0
Number of Workloads: 0
Throughput Policy: 0-15000IOPS,468.8MB/s
Is Shared: false
Is Policy Auto Generated: -
3 entries were displayed.
3つほどありますね。設定されているIOPSとスループットからして、いずれもかなり大きめのワークロードで使うようなポリシーのようです。
アダプティブQoSポリシーグループも確認します。
::*> qos adaptive-policy-group show
Expected Peak Minimum Block
Name Vserver Wklds IOPS IOPS IOPS Size
------------ ------- ------ ----------- ------------ ------- -----
extreme FsxId02ac680b159bfea94
0 6144IOPS/TB 12288IOPS/TB 1000IOPS
ANY
performance FsxId02ac680b159bfea94
0 2048IOPS/TB 4096IOPS/TB 500IOPS ANY
value FsxId02ac680b159bfea94
0 128IOPS/TB 512IOPS/TB 75IOPS ANY
3 entries were displayed.
::*> qos adaptive-policy-group show -instance
Name: extreme
Vserver: FsxId02ac680b159bfea94
Uuid: 7fe8f60e-1585-11e7-8735-0050568206af
ID: 744
Expected IOPS: 6144IOPS/TB
Peak IOPS: 12288IOPS/TB
Absolute Minimum IOPS: 1000IOPS
Expected IOPS Allocation: allocated-space
Peak IOPS Allocation: used-space
Block Size: ANY
Number of Workloads: 0
Name: performance
Vserver: FsxId02ac680b159bfea94
Uuid: 80ec96d2-1585-11e7-8f7b-0050568206af
ID: 319
Expected IOPS: 2048IOPS/TB
Peak IOPS: 4096IOPS/TB
Absolute Minimum IOPS: 500IOPS
Expected IOPS Allocation: allocated-space
Peak IOPS Allocation: used-space
Block Size: ANY
Number of Workloads: 0
Name: value
Vserver: FsxId02ac680b159bfea94
Uuid: 8192969a-1585-11e7-b11f-0050568206af
ID: 13757
Expected IOPS: 128IOPS/TB
Peak IOPS: 512IOPS/TB
Absolute Minimum IOPS: 75IOPS
Expected IOPS Allocation: allocated-space
Peak IOPS Allocation: used-space
Block Size: ANY
Number of Workloads: 0
3 entries were displayed.
こちらも3つ設定されていました。SSD IOPSは3IOPS/GiBなので、ここを意識して使用するとよさそうです。
ちなみにボリュームはデフォルトではQoSポリシーグループ、アダプティブQoSポリシーグループはアタッチされていません。
::*> volume show -fields qos-policy-group, qos-adaptive-policy-group
vserver volume qos-policy-group qos-adaptive-policy-group
------- -------- ---------------- -------------------------
svm svm_root - -
svm vol1 - -
2 entries were displayed.
QoSポリシーグループの作成
qos policy-group createでQoSポリシーグループの作成をします。
10MBps、100IOPSとQoS Maxで絞ります。また、-is-shared true
で共有QoSポリシーグループにしています。
::*> qos policy-group create -policy-group qos-policy -vserver svm -is-shared true -max-throughput 10MB/s,100iops
::*> qos policy-group show -policy-group qos-policy -instance
Policy Group Name: qos-policy
Vserver: svm
Uuid: a1ed80ff-2624-11ef-9008-7b6bd20c863b
Policy Group Class: user-defined
Policy Group ID: 834
Maximum Throughput: 10MB/s,100IOPS
Minimum Throughput: 0
Number of Workloads: 0
Throughput Policy: 0-10MB/s,100IOPS
Is Shared: true
Is Policy Auto Generated: -
fio実行中にQoSポリシーグループをボリュームに割り当て
fio実行中にQoSポリシーグループをボリュームに割り当てたときの挙動を確認します。
vol1
というボリュームをマウントして、fioを実行します。
$ sudo mkdir -p /mnt/fsxn/vol1
$ sudo mount -t nfs svm-029e0cdfb5f77da7c.fs-02ac680b159bfea94.fsx.us-east-1.amazonaws.com:/vol1 /mnt/fsxn/vol1
$ df -hT -t nfs4
Filesystem Type Size Used Avail Use% Mounted on
svm-029e0cdfb5f77da7c.fs-02ac680b159bfea94.fsx.us-east-1.amazonaws.com:/vol1 nfs4 61G 384K 61G 1% /mnt/fsxn/vol1
$ sudo dnf install fio -y
Last metadata expiration check: 0:03:16 ago on Sun Jun 9 05:57:32 2024.
Dependencies resolved.
==========================================================================================================
Package Architecture Version Repository Size
==========================================================================================================
Installing:
fio aarch64 3.32-2.amzn2023.0.3 amazonlinux 5.2 M
Installing dependencies:
librdmacm aarch64 48.0-1.amzn2023.0.1 amazonlinux 73 k
Installing weak dependencies:
fio-engine-http aarch64 3.32-2.amzn2023.0.3 amazonlinux 20 k
fio-engine-libaio aarch64 3.32-2.amzn2023.0.3 amazonlinux 18 k
fio-engine-rdma aarch64 3.32-2.amzn2023.0.3 amazonlinux 22 k
Transaction Summary
==========================================================================================================
Install 5 Packages
Total download size: 5.3 M
Installed size: 9.0 M
Downloading Packages:
(1/5): fio-engine-libaio-3.32-2.amzn2023.0.3.aarch64.rpm 330 kB/s | 18 kB 00:00
(2/5): fio-engine-http-3.32-2.amzn2023.0.3.aarch64.rpm 252 kB/s | 20 kB 00:00
.
.
(中略)
.
.
Installed:
fio-3.32-2.amzn2023.0.3.aarch64 fio-engine-http-3.32-2.amzn2023.0.3.aarch64
fio-engine-libaio-3.32-2.amzn2023.0.3.aarch64 fio-engine-rdma-3.32-2.amzn2023.0.3.aarch64
librdmacm-48.0-1.amzn2023.0.1.aarch64
Complete!
$ sudo fio \
--directory=/mnt/fsxn/vol1/ \
--name fio_rw_4MiB_block_16GiB_32jobs \
--ioengine=psync \
--direct=1 \
--rw=randwrite \
--bs=4M \
--size=16G \
--numjobs=32 \
--runtime=300 \
--eta-newline=5 \
--time_based=1 \
--group_reporting \
--norandommap
fio_rw_4MiB_block_16GiB_32jobs: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 32 processes
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
.
.
(中略)
.
.
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
Jobs: 32 (f=32): [w(32)][2.3%][w=136MiB/s][w=34 IOPS][eta 04m:53s]
Jobs: 32 (f=32): [w(32)][4.3%][w=136MiB/s][w=34 IOPS][eta 04m:47s]
Jobs: 32 (f=32): [w(32)][6.3%][w=148MiB/s][w=37 IOPS][eta 04m:41s]
Jobs: 32 (f=32): [w(32)][8.0%][w=132MiB/s][w=33 IOPS][eta 04m:36s]
.
.
(以下略)
.
.
qos statistics volume performance showで、ボリューム単位のパフォーマンスを確認します。
::*> qos statistics volume performance show
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 2377 148.56MB/s 26.97ms
vol1-wid7268 7268 2377 148.56MB/s 26.97ms
-total- - 2423 151.44MB/s 26.92ms
vol1-wid7268 7268 2423 151.44MB/s 26.92ms
-total- - 2328 145.50MB/s 27.20ms
vol1-wid7268 7268 2328 145.50MB/s 27.20ms
-total- - 2408 150.50MB/s 26.90ms
vol1-wid7268 7268 2408 150.50MB/s 26.90ms
-total- - 2360 147.50MB/s 26.96ms
vol1-wid7268 7268 2360 147.50MB/s 26.96ms
-total- - 2426 151.62MB/s 27.04ms
vol1-wid7268 7268 2426 151.62MB/s 27.04ms
-total- - 2399 149.94MB/s 26.90ms
vol1-wid7268 7268 2399 149.94MB/s 26.90ms
-total- - 2397 149.81MB/s 27.12ms
vol1-wid7268 7268 2397 149.81MB/s 27.12ms
-total- - 2311 144.44MB/s 27.45ms
vol1-wid7268 7268 2311 144.44MB/s 27.45ms
-total- - 2432 152.00MB/s 26.68ms
vol1-wid7268 7268 2432 152.00MB/s 26.68ms
-total- - 2402 150.12MB/s 26.98ms
vol1-wid7268 7268 2402 150.12MB/s 26.98ms
.
.
(以下略)
.
.
おおよそ150MBps、2300IOPS程度で安定しています。
vol1
に作成したQoSポリシーグループをアタッチします。
::*> volume modify -volume vol1 -qos-policy-group qos-policy
Volume modify successful on volume vol1 of Vserver svm.
::*> qos statistics volume performance show
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 1187 74.19MB/s 44.81ms
vol1-wid7268 7268 1187 74.19MB/s 44.81ms
-total- - 112 7.00MB/s 216.42ms
vol1-wid7268 7268 112 7.00MB/s 216.42ms
-total- - 103 6.44MB/s 155.60ms
vol1-wid7268 7268 103 6.44MB/s 155.60ms
-total- - 105 6.56MB/s 156.06ms
vol1-wid7268 7268 105 6.56MB/s 156.06ms
-total- - 104 6.50MB/s 156.19ms
vol1-wid7268 7268 104 6.50MB/s 156.19ms
-total- - 104 6.50MB/s 150.58ms
vol1-wid7268 7268 104 6.50MB/s 150.58ms
-total- - 104 6.50MB/s 142.30ms
vol1-wid7268 7268 104 6.50MB/s 142.30ms
-total- - 103 6.44MB/s 143.78ms
vol1-wid7268 7268 103 6.44MB/s 143.78ms
-total- - 103 6.44MB/s 144.19ms
vol1-wid7268 7268 103 6.44MB/s 144.19ms
-total- - 104 6.50MB/s 145.07ms
vol1-wid7268 7268 104 6.50MB/s 145.07ms
-total- - 104 6.50MB/s 144.41ms
vol1-wid7268 7268 104 6.50MB/s 144.41ms
.
.
(以下略)
.
.
アタッチした途端にIOPSとスループットが抑えられ、レイテンシーが増加しました。
しばらくするとfioが完了しました。fioの実行結果は以下のとおりです。
.
.
(中略)
.
.
Jobs: 32 (f=32): [w(32)][64.3%][w=160MiB/s][w=40 IOPS][eta 01m:47s]
Jobs: 32 (f=32): [w(32)][66.3%][w=144MiB/s][w=36 IOPS][eta 01m:41s]
Jobs: 32 (f=32): [w(32)][68.3%][w=136MiB/s][w=34 IOPS][eta 01m:35s]
Jobs: 32 (f=32): [w(32)][70.3%][w=140MiB/s][w=35 IOPS][eta 01m:29s]
Jobs: 32 (f=32): [w(32)][72.3%][w=12.0MiB/s][w=3 IOPS][eta 01m:23s]
Jobs: 32 (f=32): [w(32)][74.3%][eta 01m:17s]
Jobs: 32 (f=32): [w(32)][76.3%][w=20.0MiB/s][w=5 IOPS][eta 01m:11s]
Jobs: 32 (f=32): [w(32)][78.3%][w=4096KiB/s][w=1 IOPS][eta 01m:05s]
Jobs: 32 (f=32): [w(32)][80.3%][eta 00m:59s]
Jobs: 32 (f=32): [w(32)][82.3%][w=8200KiB/s][w=2 IOPS][eta 00m:53s]
Jobs: 32 (f=32): [w(32)][84.3%][w=8200KiB/s][w=2 IOPS][eta 00m:47s]
Jobs: 32 (f=32): [w(32)][86.3%][w=4100KiB/s][w=1 IOPS][eta 00m:41s]
Jobs: 32 (f=32): [w(32)][88.3%][w=4096KiB/s][w=1 IOPS][eta 00m:35s]
Jobs: 32 (f=32): [w(32)][90.3%][w=8200KiB/s][w=2 IOPS][eta 00m:29s]
Jobs: 32 (f=32): [w(32)][92.3%][w=16.0MiB/s][w=4 IOPS][eta 00m:23s]
Jobs: 32 (f=32): [w(32)][94.3%][w=8200KiB/s][w=2 IOPS][eta 00m:17s]
Jobs: 32 (f=32): [w(32)][96.3%][eta 00m:11s]
Jobs: 32 (f=32): [w(32)][98.3%][w=4100KiB/s][w=1 IOPS][eta 00m:05s]
Jobs: 32 (f=32): [w(6),f(1),w(25)][5.9%][w=4096KiB/s][w=1 IOPS][eta 01h:20m:14s]
Jobs: 28 (f=28): [w(4),f(1),_(3),w(1),_(1),w(22)][20.3%][w=4096KiB/s][w=1 IOPS][eta 20m:06s]
Jobs: 24 (f=24): [w(1),E(1),w(1),_(5),w(1),_(1),f(2),_(1),f(1),w(14),f(1),w(3)][12.7%][w=20.0MiB/s][w=5 IOJobs: 19 (f=19): [f(1),_(1),w(1),_(5),w(1),_(5),w(6),f(1),w(5),_(1),w(1),_(1),w(3)][7.2%][w=12.0MiB/s][w=3Jobs: 17 (f=17): [_(2),w(1),_(5),f(1),_(5),w(3),f(1),w(2),_(1),w(2),f(1),w(1),f(1),_(1),w(1),_(1),w(3)][6.Jobs: 12 (f=12): [_(2),w(1),_(11),w(1),_(1),f(1),_(1),w(1),f(1),_(1),f(1),w(1),_(1),f(1),_(2),w(1),_(1),w(1),f(1),w(1)][5.9%][w=24.0MiB/s][w=6 IOPS][eta 01h:23m:26s]
fio_rw_4MiB_block_16GiB_32jobs: (groupid=0, jobs=32): err= 0: pid=8996: Sun Jun 9 06:06:06 2024
write: IOPS=24, BW=98.9MiB/s (104MB/s)(30.3GiB/313204msec); 0 zone resets
clat (msec): min=19, max=20540, avg=1280.04, stdev=2631.80
lat (msec): min=19, max=20540, avg=1280.17, stdev=2631.79
clat percentiles (msec):
| 1.00th=[ 885], 5.00th=[ 894], 10.00th=[ 902], 20.00th=[ 902],
| 30.00th=[ 902], 40.00th=[ 902], 50.00th=[ 902], 60.00th=[ 902],
| 70.00th=[ 911], 80.00th=[ 911], 90.00th=[ 911], 95.00th=[ 919],
| 99.00th=[17113], 99.50th=[17113], 99.90th=[17113], 99.95th=[17113],
| 99.99th=[17113]
bw ( KiB/s): min=262076, max=303472, per=100.00%, avg=262326.17, stdev=208.49, samples=7710
iops : min= 60, max= 74, avg=64.02, stdev= 0.06, samples=7710
lat (msec) : 20=0.01%, 250=0.32%, 500=0.37%, 750=0.14%, 1000=96.94%
lat (msec) : 2000=0.05%, >=2000=2.16%
cpu : usr=0.01%, sys=0.03%, ctx=7854, majf=0, minf=284
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,7747,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=98.9MiB/s (104MB/s), 98.9MiB/s-98.9MiB/s (104MB/s-104MB/s), io=30.3GiB (32.5GB), run=313204-313204msec
72.3%が完了した頃からスループットとIOPSに制限がかかっていることが読み取れますね。
vol1
のCloudWatchメトリクスも確認しましょう。
途中から急激にスループット、IOPSが低下し、レイテンシーが増加していることが分かります。
fioの途中でQoS Maxの値を変更する
fioの途中でQoS Maxの値を変更した場合の挙動も確認します。
fioを実行します。
$ sudo fio \
--directory=/mnt/fsxn/vol1/ \
--name fio_rw_4MiB_block_16GiB_32jobs \
--ioengine=psync \
--direct=1 \
--rw=randwrite \
--bs=4M \
--size=16G \
--numjobs=32 \
--runtime=300 \
--eta-newline=5 \
--time_based=1 \
--group_reporting \
--norandommap
fio_rw_4MiB_block_16GiB_32jobs: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 32 processes
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
.
.
(中略)
.
.
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
Jobs: 32 (f=30): [w(32)][2.3%][eta 04m:54s]
Jobs: 32 (f=32): [w(32)][4.0%][eta 04m:49s]
Jobs: 32 (f=32): [w(32)][5.6%][w=4096KiB/s][w=1 IOPS][eta 04m:44s]
Jobs: 32 (f=32): [w(32)][7.3%][w=8192KiB/s][w=2 IOPS][eta 04m:39s]
Jobs: 32 (f=32): [w(32)][9.0%][w=24.0MiB/s][w=6 IOPS][eta 04m:34s]
Jobs: 32 (f=32): [w(32)][9.0%][w=24.0MiB/s][w=6 IOPS][eta 04m:34s]
Jobs: 32 (f=32): [w(32)][10.6%][eta 04m:29s]
Jobs: 32 (f=32): [w(32)][12.3%][w=8200KiB/s][w=2 IOPS][eta 04m:24s]
Jobs: 32 (f=32): [w(32)][14.3%][w=8200KiB/s][w=2 IOPS][eta 04m:18s]
Jobs: 32 (f=32): [w(32)][16.3%][w=8192KiB/s][w=2 IOPS][eta 04m:12s]
Jobs: 32 (f=32): [w(32)][18.3%][eta 04m:06s]
Jobs: 32 (f=32): [w(32)][20.3%][w=4100KiB/s][w=1 IOPS][eta 04m:00s]
Jobs: 32 (f=32): [w(32)][22.3%][w=16.0MiB/s][w=4 IOPS][eta 03m:54s]
Jobs: 32 (f=32): [w(32)][24.3%][eta 03m:48s]
Jobs: 32 (f=32): [w(32)][26.2%][w=8200KiB/s][w=2 IOPS][eta 03m:42s]
Jobs: 32 (f=32): [w(32)][28.2%][w=12.0MiB/s][w=3 IOPS][eta 03m:36s]
Jobs: 32 (f=32): [w(32)][30.2%][eta 03m:30s]
Jobs: 32 (f=32): [w(32)][32.2%][w=8200KiB/s][w=2 IOPS][eta 03m:24s]
Jobs: 32 (f=32): [w(32)][34.2%][eta 03m:18s]
Jobs: 32 (f=32): [w(32)][36.2%][w=24.0MiB/s][w=6 IOPS][eta 03m:12s]
Jobs: 32 (f=32): [w(32)][38.2%][eta 03m:06s]
Jobs: 32 (f=32): [w(32)][40.2%][w=8192KiB/s][w=2 IOPS][eta 03m:00s]
Jobs: 32 (f=32): [w(32)][42.2%][w=12.0MiB/s][w=3 IOPS][eta 02m:54s]
Jobs: 32 (f=32): [w(32)][44.2%][eta 02m:48s]
Jobs: 32 (f=32): [w(32)][46.2%][w=8192KiB/s][w=2 IOPS][eta 02m:42s]
Jobs: 32 (f=32): [w(32)][48.2%][w=8192KiB/s][w=2 IOPS][eta 02m:36s]
.
.
(以下略)
.
.
IOPSとスループット、レイテンシーを確認します。
::*> qos statistics volume performance show
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 104 6.50MB/s 144.74ms
vol1-wid7268 7268 104 6.50MB/s 144.74ms
-total- - 103 6.44MB/s 144.06ms
vol1-wid7268 7268 103 6.44MB/s 144.06ms
-total- - 103 6.44MB/s 142.22ms
vol1-wid7268 7268 103 6.44MB/s 142.22ms
-total- - 103 6.44MB/s 143.10ms
vol1-wid7268 7268 103 6.44MB/s 143.10ms
-total- - 103 6.44MB/s 143.21ms
vol1-wid7268 7268 103 6.44MB/s 143.21ms
-total- - 105 6.56MB/s 142.14ms
vol1-wid7268 7268 105 6.56MB/s 142.14ms
-total- - 104 6.50MB/s 144.64ms
vol1-wid7268 7268 104 6.50MB/s 144.64ms
この状態でスループットを80MBps、IOPSを1,800IOPSに変更します。
::*> qos policy-group modify -policy-group qos-policy -max-throughput 80MB/s,1800IOPS
::*> qos statistics volume performance show
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 270 16.88MB/s 55.32ms
vol1-wid7268 7268 270 16.88MB/s 55.32ms
-total- - 270 16.88MB/s 55.32ms
vol1-wid7268 7268 270 16.88MB/s 55.32ms
-total- - 1332 83.25MB/s 8.49ms
vol1-wid7268 7268 1332 83.25MB/s 8.49ms
-total- - 1349 84.31MB/s 10.87ms
vol1-wid7268 7268 1349 84.31MB/s 10.87ms
-total- - 1327 82.94MB/s 11.32ms
vol1-wid7268 7268 1327 82.94MB/s 11.32ms
-total- - 1319 82.44MB/s 11.51ms
vol1-wid7268 7268 1319 82.44MB/s 11.51ms
-total- - 1318 82.38MB/s 12.20ms
vol1-wid7268 7268 1318 82.38MB/s 12.20ms
-total- - 1307 81.69MB/s 14.08ms
vol1-wid7268 7268 1307 81.69MB/s 14.08ms
-total- - 1356 84.75MB/s 11.94ms
vol1-wid7268 7268 1356 84.75MB/s 11.94ms
.
.
(以下略)
.
.
数秒待つと、設定した値でQoSがかかっていることが分かります。レイテンシーも減少していますね。
vol1
のCloudWatchメトリクスも確認しましょう。
スループットとIOPSの2つ目の山がQoS Maxの値を変えたタイミングです。CloudWatchメトリクスにも反映されていますね。
2つのボリュームへのfio実行中に共有QoSポリシーグループを割り当てる
次に2つのボリュームへのfio実行中に共有QoSポリシーグループを割り当ててみます。
vol2
というボリュームを用意し、マウントします。この時点ではvol2
にQoSポリシーグループはアタッチしていません。
::*> volume show -fields qos-policy-group
vserver volume qos-policy-group
------- -------- ----------------
svm svm_root -
svm vol1 qos-policy
svm vol2 -
3 entries were displayed.
$ sudo mkdir -p /mnt/fsxn/vol2
sh-5.2$ sudo mount -t nfs svm-029e0cdfb5f77da7c.fs-02ac680b159bfea94.fsx.us-east-1.amazonaws.com:/vol2 /mnt/fsxn/vol2
sh-5.2$ df -hT -t nfs4
Filesystem Type Size Used Avail Use% Mounted on
svm-029e0cdfb5f77da7c.fs-02ac680b159bfea94.fsx.us-east-1.amazonaws.com:/vol1 nfs4 61G 14G 48G 23% /mnt/fsxn/vol1
svm-029e0cdfb5f77da7c.fs-02ac680b159bfea94.fsx.us-east-1.amazonaws.com:/vol2 nfs4 61G 320K 61G 1% /mnt/fsxn/vol2
vol1
とvol2
それぞれに対してfioを叩きます。
$ sudo fio \
--directory=/mnt/fsxn/vol1/ \
--name fio_rw_4MiB_block_16GiB_32jobs \
--ioengine=psync \
--direct=1 \
--rw=randwrite \
--bs=4M \
--size=16G \
--numjobs=32 \
--runtime=300 \
--eta-newline=5 \
--time_based=1 \
--group_reporting \
--norandommap
fio_rw_4MiB_block_16GiB_32jobs: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 32 processes
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
.
.
(中略)
.
.
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
Jobs: 32 (f=32): [w(32)][2.3%][w=60.0MiB/s][w=15 IOPS][eta 04m:54s]
Jobs: 32 (f=32): [w(32)][4.0%][w=72.0MiB/s][w=18 IOPS][eta 04m:49s]
Jobs: 32 (f=32): [w(32)][5.6%][w=24.0MiB/s][w=6 IOPS][eta 04m:44s]
Jobs: 32 (f=32): [w(32)][7.3%][w=60.0MiB/s][w=15 IOPS][eta 04m:39s]
Jobs: 32 (f=32): [w(32)][9.0%][w=108MiB/s][w=27 IOPS][eta 04m:34s]
Jobs: 32 (f=32): [w(32)][10.6%][w=112MiB/s][w=28 IOPS][eta 04m:29s]
Jobs: 32 (f=32): [w(32)][12.3%][w=32.0MiB/s][w=8 IOPS][eta 04m:24s]
Jobs: 32 (f=32): [w(32)][14.0%][w=32.0MiB/s][w=8 IOPS][eta 04m:19s]
Jobs: 32 (f=32): [w(32)][15.7%][w=100MiB/s][w=25 IOPS][eta 04m:13s]
Jobs: 32 (f=32): [w(32)][17.3%][w=128MiB/s][w=32 IOPS][eta 04m:08s]
Jobs: 32 (f=32): [w(32)][19.0%][w=40.0MiB/s][w=10 IOPS][eta 04m:03s]
.
.
(以下略)
.
.
$ sudo fio \
--directory=/mnt/fsxn/vol2/ \
--name fio_rw_4MiB_block_16GiB_32jobs \
--ioengine=psync \
--direct=1 \
--rw=randwrite \
--bs=4M \
--size=16G \
--numjobs=32 \
--runtime=300 \
--eta-newline=5 \
--time_based=1 \
--group_reporting \
--norandommap
fio_rw_4MiB_block_16GiB_32jobs: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 32 processes
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
.
.
(中略)
.
.
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
fio_rw_4MiB_block_16GiB_32jobs: Laying out IO file (1 file / 16384MiB)
Jobs: 32 (f=32): [w(32)][1.7%][eta 04m:55s]
Jobs: 32 (f=32): [w(32)][3.3%][eta 04m:50s]
Jobs: 32 (f=32): [w(32)][5.0%][w=128MiB/s][w=32 IOPS][eta 04m:45s]
Jobs: 32 (f=32): [w(32)][6.7%][w=128MiB/s][w=32 IOPS][eta 04m:40s]
Jobs: 32 (f=32): [w(32)][8.3%][w=80.0MiB/s][w=20 IOPS][eta 04m:35s]
Jobs: 32 (f=32): [w(32)][10.0%][eta 04m:30s]
Jobs: 32 (f=32): [w(32)][11.7%][w=100MiB/s][w=25 IOPS][eta 04m:25s]
Jobs: 32 (f=32): [w(32)][13.7%][eta 04m:19s]
Jobs: 32 (f=32): [w(32)][15.7%][w=128MiB/s][w=32 IOPS][eta 04m:13s]
Jobs: 32 (f=32): [w(32)][17.7%][w=124MiB/s][w=31 IOPS][eta 04m:07s]
Jobs: 32 (f=32): [w(32)][19.7%][eta 04m:01s]
Jobs: 32 (f=32): [w(32)][21.7%][w=128MiB/s][w=32 IOPS][eta 03m:55s]
Jobs: 32 (f=32): [w(32)][23.7%][w=128MiB/s][w=32 IOPS][eta 03m:49s]
.
.
(以下略)
.
.
この段階でのスループット、IOPS、レイテンシーは以下のとおりです。
::*> qos statistics volume performance show
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 2700 168.75MB/s 22.86ms
vol2-wid73514 73514 1359 84.94MB/s 2.22ms
vol1-wid7268 7268 1341 83.81MB/s 43.77ms
-total- - 2854 178.38MB/s 22.29ms
vol2-wid73514 73514 1497 93.56MB/s 2.82ms
vol1-wid7268 7268 1357 84.81MB/s 43.78ms
-total- - 2871 179.44MB/s 21.55ms
vol2-wid73514 73514 1538 96.12MB/s 909.00us
vol1-wid7268 7268 1333 83.31MB/s 45.36ms
-total- - 2487 155.44MB/s 27.24ms
vol1-wid7268 7268 1289 80.56MB/s 37.93ms
vol2-wid73514 73514 1198 74.88MB/s 15.73ms
-total- - 2378 148.62MB/s 27.06ms
vol2-wid73514 73514 1201 75.06MB/s 27.05ms
vol1-wid7268 7268 1177 73.56MB/s 27.07ms
-total- - 2382 148.88MB/s 27.10ms
vol1-wid7268 7268 1208 75.50MB/s 27.13ms
vol2-wid73514 73514 1174 73.38MB/s 27.07ms
.
.
(以下略)
.
.
全体約150MBpsのところにvol1
に80MBpsのQoSがかかっているので、どちらも同じ程度のスループットが出ています。
vol2
にvol1
と同じQoSポリシーグループを割り当てます。
::*> volume modify -volume vol2 -qos-policy-group qos-policy
Volume modify successful on volume vol2 of Vserver svm.
::*> qos statistics volume performance show
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 2432 152.00MB/s 27.14ms
vol2-wid73514 73514 1221 76.31MB/s 27.19ms
vol1-wid7268 7268 1211 75.69MB/s 27.09ms
-total- - 1862 116.38MB/s 34.13ms
vol1-wid7268 7268 947 59.19MB/s 33.88ms
vol2-wid73514 73514 915 57.19MB/s 34.39ms
-total- - 1862 116.38MB/s 34.13ms
vol1-wid7268 7268 947 59.19MB/s 33.88ms
vol2-wid73514 73514 915 57.19MB/s 34.39ms
-total- - 1345 84.06MB/s 49.73ms
vol2-wid73514 73514 686 42.88MB/s 49.39ms
vol1-wid7268 7268 659 41.19MB/s 50.08ms
-total- - 1331 83.19MB/s 49.35ms
vol1-wid7268 7268 667 41.69MB/s 51.18ms
vol2-wid73514 73514 664 41.50MB/s 47.52ms
-total- - 1331 83.19MB/s 49.78ms
vol1-wid7268 7268 675 42.19MB/s 49.06ms
vol2-wid73514 73514 656 41.00MB/s 50.52ms
-total- - 1360 85.00MB/s 49.55ms
vol2-wid73514 73514 692 43.25MB/s 48.44ms
vol1-wid7268 7268 668 41.75MB/s 50.70ms
.
.
(以下略)
.
.
2つのボリュームの合計スループットが80MBpsになりました。複数ボリュームに対してまとめて制限をかけたい場合に便利ですね。
vol1
とvol2
のCloudWatchメトリクスも確認しましょう。
vol1
vol2
いずれのメトリクスについても、おおよそ同じような値であることが分かります。(書き込み操作のレイテンシーは大きな差がありそうですが)
2つのボリュームに非共有QoSポリシーグループを割り当てる
2つのボリュームに非共有QoSポリシーグループを割り当てた場合の挙動も確認します。
共有QoSポリシーグループから非共有QoSポリシーグループへの切り替え、またはその逆は行うことはできません。
非共有QoSポリシーグループを新規作成します。
::*> qos policy-group create -policy-group qos-policy-no-share -vserver svm -is-shared false -max-throughput 50MB/s,500IOPS
::*> qos policy-group show qos-policy-no-share -instance
Policy Group Name: qos-policy-no-share
Vserver: svm
Uuid: 7be3cb4a-262a-11ef-9008-7b6bd20c863b
Policy Group Class: user-defined
Policy Group ID: 4028
Maximum Throughput: 50MB/s,500IOPS
Minimum Throughput: 0
Number of Workloads: 0
Throughput Policy: 0-50MB/s,500IOPS
Is Shared: false
Is Policy Auto Generated: -
vol1
とvol2
に fioを叩いてアクセスします。
::*> qos statistics volume performance show
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 1323 82.69MB/s 27.90ms
vol2-wid73514 73514 673 42.06MB/s 27.68ms
vol1-wid7268 7268 650 40.62MB/s 28.13ms
-total- - 1323 82.69MB/s 27.90ms
vol2-wid73514 73514 673 42.06MB/s 27.68ms
vol1-wid7268 7268 650 40.62MB/s 28.13ms
-total- - 1344 84.00MB/s 26.57ms
vol1-wid7268 7268 675 42.19MB/s 26.48ms
vol2-wid73514 73514 669 41.81MB/s 26.65ms
-total- - 1345 84.06MB/s 26.98ms
vol1-wid7268 7268 683 42.69MB/s 26.58ms
vol2-wid73514 73514 662 41.38MB/s 27.40ms
.
.
(以下略)
.
.
vol1
とvol2
のQoSポリシーグループを非共有グループのものに変更します。
::*> volume modify -volume vol* -qos-policy-group qos-policy-no-share
Volume modify successful on volume vol1 of Vserver svm.
Volume modify successful on volume vol2 of Vserver svm.
2 entries were modified.
::*> volume show -volume vol* -fields qos-policy-group
vserver volume qos-policy-group
------- ------ -------------------
svm vol1 qos-policy-no-share
svm vol2 qos-policy-no-share
2 entries were displayed.
::*> qos statistics volume performance show
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 1026 64.12MB/s 47.61ms
vol1-wid7268 7268 513 32.06MB/s 39.44ms
vol2-wid73514 73514 513 32.06MB/s 55.78ms
-total- - 1050 65.62MB/s 45.46ms
vol1-wid7268 7268 525 32.81MB/s 51.65ms
vol2-wid73514 73514 525 32.81MB/s 39.28ms
-total- - 1050 65.62MB/s 44.01ms
vol1-wid7268 7268 525 32.81MB/s 40.03ms
vol2-wid73514 73514 525 32.81MB/s 47.99ms
-total- - 1030 64.38MB/s 36.47ms
vol1-wid7268 7268 515 32.19MB/s 20.47ms
vol2-wid73514 73514 515 32.19MB/s 52.48ms
-total- - 1032 64.50MB/s 37.43ms
vol1-wid7268 7268 516 32.25MB/s 31.44ms
vol2-wid73514 73514 516 32.25MB/s 43.42ms
.
.
(以下略)
.
.
IOPSがそれぞれ700弱ほどだったのが、500ほどに変わりました。Qos Maxで設定した合計ではなく、設定した値で各ボリュームにQoSがかかっていることが分かります。
vol1
とvol2
のCloudWatchメトリクスは以下のとおりです。
vol1
vol2
QoS Min
QoS Minも試してみましょう。
Tiering PolicyはNoneにしていますが、どうでしょうか。
QoS Minを設定したQoSポリシーグループを作成します。
::*> qos policy-group create -policy-group qos-policy-min -vserver svm -is-shared false -min-throughput 110MB/s,2000IOPS
::*> qos policy-group show -policy-group qos-policy-min -instance
Policy Group Name: qos-policy-min
Vserver: svm
Uuid: caadefc0-262b-11ef-9008-7b6bd20c863b
Policy Group Class: user-defined
Policy Group ID: 9688
Maximum Throughput: INF
Minimum Throughput: 110MB/s,2000IOPS
Number of Workloads: 0
Throughput Policy: 110MB/s,2000IOPS-INF
Is Shared: false
Is Policy Auto Generated: -
::*> volume modify -volume vol1 -qos-policy-group qos-policy-min
Error: command failed: Invalid QoS policy group specified "qos-policy-min". The specified QoS policy group has a min-throughput value set, and the workload being assigned resides on a platform that does not support
min-throughput or the cluster is in a mixed version state and the effective cluster version of ONTAP does not support min-throughput on this platform.
::*> version
NetApp Release 9.13.1P9: Fri Apr 19 17:13:02 UTC 2024
どうやら現状のFSxNではQoS MinのQoSポリシーグループを割り当てできないようです。
エラーメッセージで検索したところ、NetAppのKBに以下のような記載がありました。
最小スループットのQoSポリシーは、ボリュームがAFF、C190、またはONTAP Selectプレミアムプラットフォーム上にある場合にのみ許可されます。
SVMへQoSポリシーグループへの割り当て
SVMへのQoSポリシーグループへの割り当てをした時の挙動を確認します。
SVMに割り当てるにあたって、子のストレージオブジェクトであるボリュームのQoSポリシーグループは外しておきます。
::*> volume modify -volume vol* -qos-policy-group -
Volume modify successful on volume vol1 of Vserver svm.
Volume modify successful on volume vol2 of Vserver svm.
2 entries were modified.
::*> volume show -volume vol* -fields qos-policy-group
vserver volume qos-policy-group
------- ------ ----------------
svm vol1 -
svm vol2 -
2 entries were displayed.
SVMにQoSポリシーグループを割り当てます。
::*> vserver modify -vserver svm -qos-policy-group qos-policy
::*> vserver show -vserver svm -fields qos-policy-group
vserver qos-policy-group
------- ----------------
svm qos-policy
::*> volume show -volume vol* -fields qos-policy-group
vserver volume qos-policy-group
------- ------ ----------------
svm vol1 -
svm vol2 -
2 entries were displayed.
この状態でvol1
とvol2
にfioでアクセスします。
fio実行中のスループット、IOPS、レイテンシーは以下のとおりです。
::*> qos statistics volume performance show
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 1375 85.00MB/s 47.50ms
vol1-wid7268 7268 1360 85.00MB/s 47.51ms
vol2-wid73514 73514 15 0KB/s 46.51ms
-total- - 1356 84.00MB/s 46.07ms
vol1-wid7268 7268 1344 84.00MB/s 45.87ms
vol2-wid73514 73514 12 0KB/s 68.13ms
-total- - 1364 84.38MB/s 45.82ms
vol1-wid7268 7268 1350 84.38MB/s 45.81ms
vol2-wid73514 73514 14 0KB/s 46.23ms
-total- - 1364 84.50MB/s 46.55ms
vol1-wid7268 7268 1352 84.50MB/s 46.43ms
vol2-wid73514 73514 12 0KB/s 60.66ms
-total- - 1366 84.44MB/s 44.95ms
vol1-wid7268 7268 1351 84.44MB/s 44.88ms
vol2-wid73514 73514 15 0KB/s 51.55ms
-total- - 1348 83.50MB/s 48.89ms
vol1-wid7268 7268 1336 83.50MB/s 48.72ms
vol2-wid73514 73514 12 0KB/s 68.05ms
-total- - 1374 84.81MB/s 44.96ms
vol1-wid7268 7268 1357 84.81MB/s 44.99ms
vol2-wid73514 73514 17 0KB/s 42.17ms
Workload ID IOPS Throughput Latency
--------------- ------ -------- ---------------- ----------
-total- - 1368 84.19MB/s 46.11ms
vol1-wid7268 7268 1347 84.19MB/s 46.43ms
vol2-wid73514 73514 21 0KB/s 25.86ms
-total- - 1368 84.19MB/s 46.11ms
vol1-wid7268 7268 1347 84.19MB/s 46.43ms
vol2-wid73514 73514 21 0KB/s 25.86ms
-total- - 1367 84.12MB/s 43.49ms
vol1-wid7268 7268 1346 84.12MB/s 43.74ms
vol2-wid73514 73514 21 0KB/s 27.78ms
-total- - 1370 84.94MB/s 48.37ms
vol1-wid7268 7268 1359 84.94MB/s 48.20ms
vol2-wid73514 73514 11 0KB/s 70.04ms
-total- - 1383 84.38MB/s 46.32ms
vol1-wid7268 7268 979 61.19MB/s 44.02ms
vol2-wid73514 73514 404 23.19MB/s 51.88ms
-total- - 1350 84.38MB/s 40.29ms
vol2-wid73514 73514 689 43.06MB/s 39.52ms
vol1-wid7268 7268 661 41.31MB/s 41.10ms
-total- - 1339 83.69MB/s 41.20ms
vol2-wid73514 73514 679 42.44MB/s 41.42ms
vol1-wid7268 7268 660 41.25MB/s 40.97ms
.
.
(以下略)
.
.
ボリュームの合計スループットがQoSポリシーグループで設定した80MBpsほどになっています。
SVMにQoSポリシーグループを割り当てている状態で、ボリュームにQoSポリシーグループを割り当てようとしてみます。
::*> volume modify -volume vol1 -qos-policy-group qos-policy-no-share
Error: command failed: Volume "vol1" cannot be in a QoS policy group because its parent Vserver "svm" already has a policy group. Either modify Vserver "svm" to set its QoS policy group to "none" or do not assign a policy
group to Volume "vol1". Use the "qos workload show" command to view all QoS workloads.
::*> volume show -volume vol* -fields qos-policy-group
vserver volume qos-policy-group
------- ------ ----------------
svm vol1 -
svm vol2 -
2 entries were displayed.
はい、意図したとおり拒否されました。
続いて、SVMに非共有QoSポリシーグループを割り当てようとしてみます。
::*> vserver modify -vserver svm -qos-policy-group qos-policy-no-share
Error: command failed: Invalid QoS policy group "qos-policy-no-share" specified. The specified QoS policy group is a non-shared policy. Data Vservers are not supported by a non-shared policy group.
::*> vserver show -vserver svm -fields qos-policy-group
vserver qos-policy-group
------- ----------------
svm qos-policy
非共有QoSポリシーグループはSVMに割り当てられないようです。
1つのFSxNファイルシステムにさまざまなワークロードを集約したい時に
Amazon FSx for NetApp ONTAPにてQoSでIOPSとスループットの上限を絞ってみました。
QoSは1つのFSxNファイルシステムにさまざまなワークロードを集約したい時には必須だと思います。まずはSVM単位で絞ってみてはいかがでしょうか。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!